using System;
using Kaleida.ServiceMonitor.Model.Runtime;

namespace Kaleida.ServiceMonitor.Model.ColourSpecifications
{
    internal abstract class MetricBase : IMetric
    {
        public override string ToString()
        {
            return NamePlural;
        }

        public abstract string NameSingular { get; }
        public abstract string NamePlural { get; }
        public abstract Func<IMonitorState, decimal?> GetValueFunction { get; }
        public abstract bool IsValidValue(decimal value, out string message);
    }
}